10 KEY OFF:COLOR 7,0
20 SCREEN 0:WIDTH 80 
30 CLS
40 SW=80
50 COLOR  0, 15:LOCATE  1, 13:PRINT " + + + + + +   S O F T M A R K   I N C.   + + + + + + "
60  COLOR 15,0:LOCATE  3, 35:PRINT "ASDA MENU"
70  COLOR 15,0:LOCATE  8, 14:PRINT "* * * * * * * * * * * * * * * * * * * * * * * * * *"
80  COLOR 15,0:LOCATE  9, 14:PRINT "*"
90  COLOR 15,0:LOCATE  9, 64:PRINT "*"
100  COLOR 15,0:LOCATE  10, 14:PRINT "*"
101 COLOR 15,0:LOCATE  10,64:PRINT "*"
120  COLOR 15,0:LOCATE  11, 14:PRINT "*"
130  COLOR 7,0:LOCATE  11, 24:PRINT "1. CREATE A NEW SCREEN FORMAT"
140  COLOR 15,0:LOCATE  11, 64:PRINT "*"
150  COLOR 15,0:LOCATE  12, 14:PRINT "*"
160  COLOR 15,0:LOCATE  12, 64:PRINT "*"
170  COLOR 15,0:LOCATE  13, 14:PRINT "*"
180  COLOR 7,0:LOCATE  13, 24:PRINT "2. MODIFY AN EXISTING SCREEN FOMAT"
190  COLOR 15,0:LOCATE  13, 64:PRINT "*"
200  COLOR 15,0:LOCATE  14, 14:PRINT "*"
210  COLOR 15,0:LOCATE  14, 64:PRINT "*"
220  COLOR 15,0:LOCATE  15, 14:PRINT "*"
230  COLOR 7,0:LOCATE  15, 24:PRINT "3. DELETE AN EXISTING SCREEN FORMAT"
240  COLOR 15,0:LOCATE  15, 64:PRINT "*"
250  COLOR 15,0:LOCATE  16, 14:PRINT "*"
260  COLOR 15,0:LOCATE  16, 64:PRINT "*"
270  COLOR 15,0:LOCATE  17, 14:PRINT "*"
271  COLOR 7,0:LOCATE  17, 24:PRINT "4. VIEW SELECTED SCREEN FORMATS   "
272  COLOR 15,0:LOCATE  17, 64:PRINT "*"
273  COLOR 15,0:LOCATE  18, 14:PRINT "*"
274  COLOR 15,0:LOCATE  18, 64:PRINT "*"
275  COLOR 15,0:LOCATE  19, 14:PRINT "*"
276  COLOR 7,0:LOCATE  19, 24:PRINT "5. SIGN OFF                        "
277  COLOR 15,0:LOCATE  19, 64:PRINT "*"
278  COLOR 15,0:LOCATE  20, 14:PRINT "*"
279  COLOR 15,0:LOCATE  20, 64:PRINT "*"
280  COLOR 15,0:LOCATE  21, 14:PRINT "*"
285  COLOR 15,0:LOCATE  21, 64:PRINT "*"
290  COLOR 15,0:LOCATE  22, 14:PRINT "* * * * * * * * * * * * * * * * * * * * * * * * * *"
300 SM.DESCR$="1 223 "
310 SM.ATTRIB$="ME"
320 SM.DATATAB$="12345"
330 SM.RANGE$=""
340 GOSUB 440:ANSWER$=MID$(SM.FIELD$,1,1)
350 IF ANSWER$="1" THEN CHAIN "A:ASDA"
360 IF ANSWER$="2" THEN CHAIN "A:RESTATTR"
370 IF ANSWER$="3" THEN CHAIN "A:ASDADEL"
371 IF ANSWER$="4" THEN CHAIN "A:FORMDISP",20
380 IF ANSWER$="5" THEN CLS:SYSTEM
390 GOTO 2030
440 I59=0:I60=0:I61=0:I62=0:I63=0:I64=0:I65=0:I66=0:I67=0:I68=0:I69=0:I70=0:I71=0:I81=0:I82=0:I99=0:I57=0:I58=0:I11=0:I10=0
450 SM.FIELD$=SPACE$(SW)
460 RL=VAL(MID$(SM.DESCR$,1,2)):IF RL>SW THEN RL=SW
470 SR=VAL(MID$(SM.DESCR$,3,2)):SC=VAL(MID$(SM.DESCR$,5,2))
480 DC=VAL(MID$(SM.DESCR$,7,2))
490 A$="000000": INSC=1:F=7:B=0
500 FOR X=1 TO 25 STEP 2
550 IF MID$(SM.ATTRIB$,X,2)="ME" THEN I61=1
710 IF MID$(SM.ATTRIB$,X,2)="" THEN X=25
720 NEXT X
860 IF MID$(SM.DATATAB$,1,RL)="" THEN I81=0 ELSE I81=1
880 STARTROW=SR:STARTCOL=SC:COUNT=0:ENDCOL=(SC+RL)-1
890 '
900 LOCATE SR,SC,1:COLOR F,B
910 I99=0:I75=0:I74=0
920 ENT$=INKEY$
930 IF ENT$="" THEN GOTO 900
950 L$=LEFT$(ENT$,1):R$=RIGHT$(ENT$,1)
1060 IF ENT$=CHR$(43) THEN I79=1: GOTO 1210
1070 IF ENT$=CHR$(13) THEN GOTO 1210                   ' "enter" was pressed
1100 IF (I68=1) AND (ENT$=CHR$(32)) THEN I75=1: GOTO 1140
1140 DIF=SR-STARTROW:IF DIF<0 THEN DIF=1
1150 DD=DIF*SW
1160 LOCATE SR,SC,0:PRINT ENT$:MID$(SM.FIELD$,(((SC+DD)-STARTCOL)+1),1)=ENT$
1170 SC=SC+1:IF SC>SW THEN SC=1:SR=SR+1:IF SR>23 THEN SR=1
1180 IF SC<=ENDCOL THEN GOTO 900
1190 IF SC>ENDCOL THEN SC=ENDCOL
1210 IF I61=1 THEN GOSUB 1880
1220 IF I99=1 THEN SC=STARTCOL:SR=STARTROW:GOTO 910
1260 IF I79=1 THEN GOSUB 1960
1280 IF I81=1 THEN GOSUB 1570
1290 IF I99=1 THEN COUNT=0:SR=STARTROW:SC=STARTCOL:GOTO 890
1350 COLOR 7,0:RETURN
1570 FOR XX=1 TO 255 STEP RL
1580 IF (I68=0) AND (MID$(SM.FIELD$,1,RL)=MID$(SM.DATATAB$,XX,RL)) THEN XX=255: GOTO 1630
1590 IF (I68=1) AND (VAL(MID$(SM.FIELD$,1,RL))=VAL(MID$(SM.DATATAB$,XX,RL))) THEN XX=255: GOTO 1630
1600 IF MID$(SM.DATATAB$,XX,RL)="" THEN XX=255
1610 NEXT XX
1620 I99=1
1630 RETURN
1700 FOR XX=1 TO RL
1710 IF MID$(SM.FIELD$)="0" THEN LOCATE R,C,0: PRINT " " ELSE LOCATE R,C,0:PRINT MID$(SM.FIELD$,XX,1)
1720 C=C+1: IF C>SW THEN C=1:R=R+1
1730 IF R>23 THEN R=1
1740 NEXT XX
1750 RETURN
1880 I99=1
1890  FOR X=1 TO RL
1900 IF MID$(SM.FIELD$,X,1)<>" " THEN I99=0
1910 NEXT X
1920 RETURN
1960 FOR X=1 TO RL
1970 MID$(SM.FIELD$,((SC-STARTCOL)+X),1)=" "
1980 IF (((SC-STARTCOL)+1)+X)>RL THEN X=RL
1990 NEXT X
2000 LOCATE STARTROW,STARTCOL:PRINT MID$(SM.FIELD$,1,RL)
2010 RETURN
